package com.lib.common.helper.api

import android.util.Log
import com.lib.common.repository.common.ComSharePreHelper
import com.lib.common.repository.common.SpKeyInComSp
import com.lib.framework.utils.AppUtil

/**
 * Copyright (C), 2020-2020, 享物说
 * FileName: DomainConfig
 * Author: keanbin
 * Date: 2020-02-05 13:54
 * Description: 域名配置
 * History:
 * <author> <time> <version> <desc>
 * 作者姓名 修改时间 版本号 描述
 */
class DomainConfig {

    companion object {

        private const val TAG = "DomainConfig"

        /**
         * 环境类型
         */
        const val ENV_RELEASE = 0 // 生产环境
        const val ENV_DAMO = 1 // damo 环境
        const val ENV_TEST = 2 // 测试环境

        /**
         * 域名静态变量，默认是 正式环境 的域名
         */
        var sHostBase = "https://api.onlysend.com/" // 基本 的域名
        var sHostWebUrl = "https://cwh5.onlysend.com/" // web使用 的域名

        /**
         * 获取url使用的环境
         *
         * @return 0：正式环境；1：damo 环境；2：test 环境
         */
        fun getUrlEnv(): Int {
            // 强制 发布版本 是正式服
            return if (AppUtil.isReleaseOfVersionType()) {
                ENV_RELEASE
            } else ComSharePreHelper.getInt(SpKeyInComSp.SP_KEY_URL_ENV_TYPE, ENV_DAMO)
        }

        /**
         * 是否是 生产环境
         */
        fun isReleaseEnv(): Boolean {
            return getUrlEnv() == ENV_RELEASE
        }

        /**
         * 设置 url使用的环境
         *
         * @param urlEnvType  0：正式环境；1：damo 环境；2：test 环境
         */
        fun setUrlEnv(urlEnvType: Int) {
            ComSharePreHelper.putInt(SpKeyInComSp.SP_KEY_URL_ENV_TYPE, urlEnvType)

            // 重新初始化域名
            initDomain()
        }

        /**
         * 初始化域名
         */
        fun initDomain() {
            val urlEnvType = getUrlEnv()
            Log.i(TAG, "initDomain urlEnvType = $urlEnvType")

            when (urlEnvType) {
                // demo 环境
                ENV_DAMO -> {
                    sHostBase = "http://stag-api.onlysend.com/" // 基本 的域名
                    sHostWebUrl = "https://stag-cwh5.onlysend.com/" // web使用 的域名
                }

                // test 环境
                ENV_TEST -> {
                    sHostBase = "http://qa-api.onlysend.com/" // 基本 的域名
                    sHostWebUrl = "http://qa-cwh5.onlysend.com/" // web使用 的域名
                }

                // release 环境
                else -> {
                    sHostBase = "https://api.gogogowa.com/" // 基本 的域名
                    sHostWebUrl = "https://cwh5.gogogowa.com/" // web使用 的域名
                }
            }
        }
    }
}